iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
Software Development

Unity遊戲開發系列 第 5

DAY05 Unity 角色移動

  • 分享至 

  • xImage
  •  

角色要移動先得使用Input.GetAxis或是Input.GetKeyDown來取得鍵盤輸入控制
利用改變座標或是物理作用來驅使角色移動

Input.GetAxis是取得Unity內輸入器設定的縱軸設定和橫軸設定來判斷
Input.GetKeyDown是自己設定對應的KeyCode來判斷

待更

座標移動

座標位移 transform.position

if (Input.GetKeyDown(KeyCode.D)) {    
    this.gameObject.transform.position += new Vector3(5, 0, 0);
}

待更

if (Input.GetKeyDown(KeyCode.A)) {    
        transform.Translate(-5, 0, 0);
       }
 Vector2 moveInput = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
  moveVelocity = moveInput.normalized * speed;

物理作用移動

指定速度 velocity

使用velocity給物體直接改變速度

 rigid2D.velocity = new Vector2(speed_x_constraint, rigid2D.velocity.y);

施加力量推動 AddForce

使用AddForce時會受到物體質量影響反映初速度移動的快慢

if (Input.GetKeyDown(KeyCode.D))
        {
            rigid2D.AddForce(new Vector2(0, 200), ForceMode2D.force);//加速度推動          
        }
 else if (Input.GetKeyDown(KeyCode.A))
        {
            rigid2D.AddForce(new Vector2(0, -200), ForceMode2D.Impulse);//瞬間衝力       
        }       

待更


參考資料
https://docs.unity3d.com/ScriptReference/Input.GetAxis.html
https://docs.unity3d.com/ScriptReference/Input.GetKeyDown.html
https://greenbeansplay.com/unity-role-move-collider-transform-rigidbody/
https://www.youtube.com/watch?v=_LdnD8zN5OU


上一篇
DAY04 碰撞框Collision
下一篇
DAY06 Unity 變數宣告和Inspector
系列文
Unity遊戲開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言